#ifndef		__XMON_H__
#define		__XMON_H__

#include "Includes.h"
#include "UI/XmonEditor.h"

class Xmon  : public AudioProcessor
{
	public:
		Xmon();
		~Xmon();
		void prepareToPlay (double sampleRate, int samplesPerBlock);
		void releaseResources();
		void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
		AudioProcessorEditor* createEditor();
		const String getName() const;
		int getNumParameters();
		float getParameter (int index);
		void setParameter (int index, float newValue);
		const String getParameterName (int index);
		const String getParameterText (int index);
		const String getInputChannelName (const int channelIndex) const;
		const String getOutputChannelName (const int channelIndex) const;
		bool isInputChannelStereoPair (int index) const;
		bool isOutputChannelStereoPair (int index) const;
		bool acceptsMidi() const;
		bool producesMidi() const;
		int getNumPrograms()                                        { return 0; }
		int getCurrentProgram()                                     { return 0; }
		void setCurrentProgram (int index)                          { }
		const String getProgramName (int index)                     { return String::empty; }
		void changeProgramName (int index, const String& newName)   { }
		void getStateInformation (MemoryBlock& destData);
		void setStateInformation (const void* data, int sizeInBytes);
		
		juce_UseDebuggingNewOperator
	
	private:
		XmonEditor *editor;
};


#endif
